﻿#pragma once
#include "gl3com.h"
#include "cRenderDevice.h"
#include "cModelManager.h"
#include "cFileManager.h"
#include "cwLogger.h"
#include "cTimer.h"
#include "cImage.h"

bool init();

//#define GLEW_STATIC
//#include <GL/glew.h>
//#include <GL/wglew.h>

	// заголовки DevIL
//#include<IL/il.h>
//#include<IL/ilu.h>
//#include<IL/ilut.h>
//	// инициализация библиотек
////bool InitGLEW();
////bool InitDevIL();
//
//bool CheckVersionDevIL();
//// функция загрузки и создания текстуры используя библиотеку DevIL
//bool createTexture(GLuint *texture, const char* filename);
//
//uint createProgram();
//// дефайные определяющие местоположение вершинных атрибутов в шейдере
////#define    VERT_POSITION   10
////#define    VERT_TEXCOORD   11
////#define    VERT_NORMAL     12
//// загрузка и компиляция шейдеров
//uint loadShader( const char* fileName, GLenum type );
//
//// задание вершинных атрибутов
//bool setAttrPtr( int vertLoc, int numComponents, GLsizei stride, void * ptr, GLenum typeVar = GL_FLOAT, bool normalized = false );
//bool setAttrPtr( uint program, const char * name, int numComponents, GLsizei stride, void * ptr, GLenum typeVar = GL_FLOAT, bool normalized = false );
//
//// получение местоположения юниформа в шейдере и передача данных
//bool setUniform1f( uint program, const char* nameUnif, float val );
//bool setUniform2f( uint program, const char* nameUnif, float v0, float v1 );
//bool setUniform3f( uint program, const char* nameUnif, float v0, float v1, float v2 );
//bool setUniform4f( uint program, const char* nameUnif, float v0, float v1, float v2, float v3 );
//int getsUniform1i( uint program, const char* nameUnif, float v0 );
//bool setUniform2i( uint program, const char* nameUnif, float v0, float v1 );
//bool setUniform3i( uint program, const char* nameUnif, float v0, float v1, float v2 );
//bool setUniform4i( uint program, const char* nameUnif, float v0, float v1, float v2, float v3 );
//bool setUniformMatrix2fv( uint program, const char* nameUnif, GLsizei count, GLboolean transpose, const GLfloat *val );
//bool setUniformMatrix3fv( uint program, const char* nameUnif, GLsizei count, GLboolean transpose, const GLfloat *val );
//int getsUniformMatrix4fv( uint program, const char* nameUnif, GLsizei count, GLboolean transpose, const GLfloat *val );
//bool setUniformMatrix4fv( uint program, int location, GLsizei count, GLboolean transpose, const GLfloat *val );
